The growing popularity and increasing accessibility of the Internet has resulted in its becoming a major source of information, as well as a vehicle for inter-party transactions, in a variety of environments. For instance, a number of different types of entities, from government agencies to school systems and other organized groups, host Internet and/or intranet websites that provide information about themselves and topics related to their interests. Similarly, commercial enterprises employ websites to disseminate information about their products or services, as well as conduct commercial transactions, such as the buying and selling of goods. To support these activities, each website requires an infrastructure that stores the information provided by that site, responds to user requests for the information, and conducts other types of transactions appropriate to the site. A significant component of this infrastructure is a web server, which receives requests for information, retrieves it from the appropriate sources, and provides it to the requester. Websites which provide more complex services, such as on-line ordering, may also include application servers to support each additional function.
In the case of a relatively small entity, the infrastructure to support a website may be as simple as a single server, or even a portion of the server. Conversely, a large popular website that consists of several thousand pages of information and that is accessed quite frequently may require numerous servers to provide the necessary support. Similarly, websites for commercial entities, through which transactional operations are conducted, may employ multiple application servers to support transactions with a large number of customers at a time.
While an entity may create and support its own “website”, some entities may desire to have their websites supported by an organization that specializes in such a service, such as a managed service provider. In such a situation, employees of the various entities may require access to the servers and other devices that support their respective websites, for example to update content, perform routine maintenance, etc. At the same time, personnel at the support organization also require access to these devices, to upgrade, reconfigure or retire components of the infrastructure. When a single organization is responsible for supporting the data of multiple entities, and different groups of people require access to that data, a problem may arise in supporting the individual needs of each of the various entities. For example, each of the respective entities can have specific policies or procedures with regard to their respective information. For example, security polices may be established which define who has permission to access what information. Such a security policy can establish that a particular individual has the authority to access all devices associated with a particular entity, whereas other individuals such as developers may only be authorized access to a subset of the devices associated with the entity.
Prior to the present invention, a common solution was to manually configure each device. For example, each device was configured with access lists or user-password pairs which identified who had access to the device. This solution, while providing some data security, has its limitations. For example, when the system requires updating, it can be difficult to find all of the instances of, for example, the user-password pairs, leaving the system vulnerable to unauthorized access. Furthermore, the infrastructure required to support large websites may include numerous computing devices, such as web servers, database servers, and application servers, resulting in significant efforts in maintaining the current data.
Accordingly, it is desirable to provide a system and method for configuring computing devices within the context of a multi-party communications network that provides sufficient flexibility to accommodate the different needs of each of the entities who provide services by way of the network, while providing the ability to update the needs of each entity as they change.